body {
  @include size(100%);
  @include user-select(none);
  @include th-self {
    color: text-color();
    background-color: background-color();
  }
  overflow: auto;
  font-family: $base-font-family;
  font-feature-settings: "kern", "liga";
  font-size: $base-font-size;
  line-height: $base-line-height;
  cursor: default;
}

@-moz-document url-prefix() {
  body { text-shadow: 0 0; }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: $heading-font-family;
  line-height: $heading-line-height;
  margin: 0 0 $small-spacing;
}

$small-header-font-size: modular-scale(2, $base-font-size);
$large-header-font-size: modular-scale(3, $base-font-size);

h6 { font-size: $base-font-size; }
h5 { font-size: modular-scale(1, $base-font-size, 1.1); }
h4 { font-size: modular-scale(2, $base-font-size, 1.1); }
h3 { font-size: modular-scale(3, $base-font-size, 1.1); }
h2 { font-size: $small-header-font-size; }
h1 { font-size: $large-header-font-size; }

p {
  margin: 0 0 $small-spacing;
}

a {
  @include th {
    color: text-color();
    border-bottom: 1px dotted;
  }
  text-decoration: none;
  display: inline-block;
  transition: color $base-duration $base-timing;
  cursor: pointer;
  height: 1.2em;

  &:active, &:focus, &:hover {
    outline: none;
    border-bottom: 1px solid;
    &.muted-color {
      border-bottom: 1px solid;
    }
  }
}

hr {
  @include th { border-bottom: base-border(); }
  border-left: 0;
  border-right: 0;
  border-top: 0;
  margin: $base-spacing 0;
}

img {
  margin: 0;
  max-width: 100%;
}

.thin {
  font-weight: 200;
}

* {
  @include selection(true) {
    @include th {
      background-color: text-selection-bg-color();
    }
  }
}
